Embodiments of the inventive concept relate generally to nonvolatile memory devices. More particularly, embodiments of the inventive concept relate to flash memory devices and related methods of programming.
Semiconductor memory devices can be roughly divided into two categories based on whether they retain stored data when disconnected from power. These categories include volatile memory devices, which lose stored data when disconnected from power, and nonvolatile memory devices, which retain stored data when disconnected from power.
Examples of volatile memory devices include dynamic random access memory (DRAM), static random access memory (SRAM), and examples of nonvolatile memory devices include electrically erasable programmable read only memory (EEPROM), ferroelectric random access memory (FRAM), phase-change random access memory (PRAM), magnetoresistive random access memory (MRAM), and flash memory.
In recent years, there has been an increase in the number of devices employing nonvolatile memory devices. As examples, nonvolatile memory devices are being used increasingly in MP3 players, digital cameras, cellular phones, camcorders, flash cards, solid state drives (SSDs), to name but a few. In addition, there has also been an increase in the overall storage capacity of nonvolatile memory devices, resulting in a tremendous amount of nonvolatile data storage in use today.
One way to increase the storage capacity of a nonvolatile memory device is by storing more than one bit of data in each memory cell. Nonvolatile memory devices storing more than one bit of data in each memory cell are called multi-level cell (MLC) devices because the memory cells store multiple levels of data, e.g., lower level bits, upper level bits, mid-level bits, and so on. A multi-level cell typically stores data by maintaining a threshold voltage within one of multiple threshold voltage distributions. For instance, in a two-bit MLC, four threshold voltage distributions may be used to store data “11”, “10”, “00”, “01”.
To reliably read an MLC device, the threshold voltage distributions in the MLCs must be separated enough so that they can be distinguished in a read operation. In other words, the MLCs must have a sufficient read margin to allow accurate data sensing. A common programming method for securing a sufficient read margin is incremental step pulse programming (ISPP). In ISPP, memory cells are programmed with multiple program loops each comprising a program step for applying a program pulse and a verify step for determining whether the memory cells have been adequately programmed. In each program loop, a successively larger program pulse is applied to the memory cells. The incremental difference between each successive pulse (ΔV) is generally small to ensure a sufficient read margin. But unfortunately, using a small ΔV tends to increase the number of required pulses and the overall programming time, slowing the operation of MLC devices.